package com.pxst.fi.req;

import com.pxst.annotations.validated.DateValidator;
import com.pxst.fi.entity.SysThirdPartySettingEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.DecimalMin;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.HashMap;
import java.util.Map;

/**
 * @author rj
 * @create 2023-09-22-17:59
 */
@Data
public class ThirdPaySettingUpdateReq {

    @ApiModelProperty(value = "第三方支付设定id", required = true)
    @NotNull(message = "第三方设定id不能为空")
    private Long id;

    @DecimalMin(value = "0", message = "银行手续费必须大于等于 0")
    @ApiModelProperty(value = "银行手续费", required = true)
    @NotNull(message = "银行手续费不能为空")
    private BigDecimal bankFee;

    @ApiModelProperty(value = "货币", required = true)
    @NotBlank(message = "币别不能为空")
    private String currency;

    @ApiModelProperty(value = "状态", required = true)
    @NotNull(message = "状态不能为空")
    private Integer status;

    @ApiModelProperty(value = "第三方限制最大值", required = true)
    @DecimalMin(value = "1", message = "第三方限制最大值必须大于 0")
    @NotNull(message = "第三方最大值限制不能为空")
    private BigDecimal thirdPartyMax;

    @DecimalMin(value = "1", message = "第三方限制最小值必须大于 0")
    @ApiModelProperty(value = "第三方限制最小值", required = true)
    @NotNull(message = "第三方最小值不能为空")
    private BigDecimal thirdPartyMin;

    @DecimalMin(value = "0", message = "交易费率必须大于等于 0")
    @ApiModelProperty(value = "交易费率", required = true)
    @NotNull(message = "交易费率不能为空")
    private BigDecimal trRate;

    @DecimalMin(value = "0", message = "交易费用必须大于等于 0")
    @ApiModelProperty(value = "交易费用", required = true)
    @NotNull(message = "交易费用不能为空")
    private BigDecimal trRateAmount;

    @ApiModelProperty(value = "预设单笔最大金额", required = true)
    @DecimalMin(value = "1", message = "预设单笔最大金额必须大于 0")
    @NotNull(message = "预设单笔最大金额不能为空")
    private BigDecimal tradeMax;

    @DecimalMin(value = "1", message = "预设单笔最小金额必须大于 0")
    @ApiModelProperty(value = "预设单笔最小金额", required = true)
    @NotNull(message = "预设单笔最小金额不能为空")
    private BigDecimal tradeMin;

    @ApiModelProperty(value = "交易模式", required = true)
    @NotNull(message = "交易模式不能为空")
    private Integer txnMode;

    @ApiModelProperty(value = "交易类型", required = true)
    @NotNull(message = "交易类型不能为空")
    private Integer tradeType;

    @ApiModelProperty(value = "类型", required = true)
    @NotNull(message = "类型不能为空")
    private Integer type;

}
